/**
 * Yolema.com Inc.
 * Copyright (c) 2011-2012 All Rights Reserved.
 */
package org.grayrabbit.pay.core.model.entity.transaction;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

import org.grayrabbit.pay.core.model.enums.TradeEnum;
import org.grayrabbit.pay.core.model.pages.PageQuery;

@Table(name = "TRADE_HISTORY")
public class TradeHistory extends PageQuery {

    /** serialVersionUID */
    private static final long serialVersionUID = 1479427860069433360L;

    /** 交易编号 */
    @Column(name = "TRADE_ID")
    @Id
    private Long              tradeId;

    @Column(name = "ORDER_TRADE_ID")
    private String            orderTradeId;

    /** 订单编号 */
    @Column(name = "ORDER_ID")
    private String            orderId;

    /** 交易名称 */
    @Column(name = "TRADE_NAME")
    private String            tradeName;

    /** 交易金额 */
    @Column(name = "TRADE_MONEY")
    private Long              tradeMoney;

    /** 货币代码 */
    @Column(name = "TRADE_CODE")
    private String            tradeCode;

    /** 交易日期 */
    @Column(name = "TRADE_DATE")
    private Date              tradeDate;

    /** 使用的终端 */
    @Column(name = "TRADE_TERMINAL")
    private String            tradeTerminal;

    /** 应用系统 */
    @Column(name = "APP_SYSTEM_CODE")
    private String            appSystemCode;

    /** 创建时间 */
    @Column(name = "GMT_CREATE")
    private Date              gmtCreate;

    /** 交易动作:p收款 ,r退款 */
    @Column(name = "TRADE_ACTION")
    private String            tradeAction;

    /** 订单状态 */
    @Column(name = "TRADE_STATUS")
    private String            tradeStatus;

    /** 操作人 */
    @Column(name = "OPERATER")
    private String            operater;

    /** 操作时间 */
    @Column(name = "GMT_OPERATE")
    private Date              gmtOperate;

    /** 备注 */
    @Column(name = "MEMO")
    private String            memo;

    private Boolean           isLast;

    private TradeEnum         statusEnum;

    public TradeEnum getStatusEnum() {
        return statusEnum;
    }

    public void setStatusEnum(TradeEnum statusEnum) {
        this.statusEnum = statusEnum;
    }

    public Boolean getIsLast() {
        return isLast;
    }

    public void setIsLast(Boolean isLast) {
        this.isLast = isLast;
    }

    /**
     * Getter method for property <tt>tradeId</tt>.
     * 
     * @return property value of tradeId
     */
    public Long getTradeId() {
        return tradeId;
    }

    /**
    * Setter method for property <tt>tradeId</tt>.
    * 
    * @param tradeId value to be assigned to property tradeId
    */
    public void setTradeId(Long tradeId) {
        this.tradeId = tradeId;
    }

    /**
     * Getter method for property <tt>orderId</tt>.
     * 
     * @return property value of orderId
     */
    public String getOrderId() {
        return orderId;
    }

    /**
    * Setter method for property <tt>orderId</tt>.
    * 
    * @param orderId value to be assigned to property orderId
    */
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    /**
     * Getter method for property <tt>tradeName</tt>.
     * 
     * @return property value of tradeName
     */
    public String getTradeName() {
        return tradeName;
    }

    /**
    * Setter method for property <tt>tradeName</tt>.
    * 
    * @param tradeName value to be assigned to property tradeName
    */
    public void setTradeName(String tradeName) {
        this.tradeName = tradeName;
    }

    /**
     * Getter method for property <tt>tradeMoney</tt>.
     * 
     * @return property value of tradeMoney
     */
    public Long getTradeMoney() {
        return tradeMoney;
    }

    /**
    * Setter method for property <tt>tradeMoney</tt>.
    * 
    * @param tradeMoney value to be assigned to property tradeMoney
    */
    public void setTradeMoney(Long tradeMoney) {
        this.tradeMoney = tradeMoney;
    }

    /**
     * Getter method for property <tt>tradeCode</tt>.
     * 
     * @return property value of tradeCode
     */
    public String getTradeCode() {
        return tradeCode;
    }

    /**
    * Setter method for property <tt>tradeCode</tt>.
    * 
    * @param tradeCode value to be assigned to property tradeCode
    */
    public void setTradeCode(String tradeCode) {
        this.tradeCode = tradeCode;
    }

    /**
     * Getter method for property <tt>tradeDate</tt>.
     * 
     * @return property value of tradeDate
     */
    public Date getTradeDate() {
        return tradeDate;
    }

    /**
    * Setter method for property <tt>tradeDate</tt>.
    * 
    * @param tradeDate value to be assigned to property tradeDate
    */
    public void setTradeDate(Date tradeDate) {
        this.tradeDate = tradeDate;
    }

    /**
     * Getter method for property <tt>tradeTerminal</tt>.
     * 
     * @return property value of tradeTerminal
     */
    public String getTradeTerminal() {
        return tradeTerminal;
    }

    /**
    * Setter method for property <tt>tradeTerminal</tt>.
    * 
    * @param tradeTerminal value to be assigned to property tradeTerminal
    */
    public void setTradeTerminal(String tradeTerminal) {
        this.tradeTerminal = tradeTerminal;
    }

    /**
     * Getter method for property <tt>appSystem</tt>.
     * 
     * @return property value of appSystem
     */
    public String getAppSystemCode() {
        return appSystemCode;
    }

    /**
    * Setter method for property <tt>appSystem</tt>.
    * 
    * @param appSystem value to be assigned to property appSystem
    */
    public void setAppSystemCode(String appSystemCode) {
        this.appSystemCode = appSystemCode;
    }

    /**
     * Getter method for property <tt>gmtCreate</tt>.
     * 
     * @return property value of gmtCreate
     */
    public Date getGmtCreate() {
        return gmtCreate;
    }

    /**
    * Setter method for property <tt>gmtCreate</tt>.
    * 
    * @param gmtCreate value to be assigned to property gmtCreate
    */
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * Getter method for property <tt>tradeAction</tt>.
     * 
     * @return property value of tradeAction
     */
    public String getTradeAction() {
        return tradeAction;
    }

    /**
    * Setter method for property <tt>tradeAction</tt>.
    * 
    * @param tradeAction value to be assigned to property tradeAction
    */
    public void setTradeAction(String tradeAction) {
        this.tradeAction = tradeAction;
    }

    /**
     * Getter method for property <tt>tradeStatus</tt>.
     * 
     * @return property value of tradeStatus
     */
    public String getTradeStatus() {
        return tradeStatus;
    }

    /**
    * Setter method for property <tt>tradeStatus</tt>.
    * 
    * @param tradeStatus value to be assigned to property tradeStatus
    */
    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    /**
     * Getter method for property <tt>operater</tt>.
     * 
     * @return property value of operater
     */
    public String getOperater() {
        return operater;
    }

    /**
    * Setter method for property <tt>operater</tt>.
    * 
    * @param operater value to be assigned to property operater
    */
    public void setOperater(String operater) {
        this.operater = operater;
    }

    /**
     * Getter method for property <tt>gmtOperate</tt>.
     * 
     * @return property value of gmtOperate
     */
    public Date getGmtOperate() {
        return gmtOperate;
    }

    /**
    * Setter method for property <tt>gmtOperate</tt>.
    * 
    * @param gmtOperate value to be assigned to property gmtOperate
    */
    public void setGmtOperate(Date gmtOperate) {
        this.gmtOperate = gmtOperate;
    }

    /**
     * Getter method for property <tt>memo</tt>.
     * 
     * @return property value of memo
     */
    public String getMemo() {
        return memo;
    }

    /**
    * Setter method for property <tt>memo</tt>.
    * 
    * @param memo value to be assigned to property memo
    */
    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getOrderTradeId() {
        return orderTradeId;
    }

    public void setOrderTradeId(String orderTradeId) {
        this.orderTradeId = orderTradeId;
    }

}
